Application programs are commonly used to create and edit documents. For example, a word processing program can be used to create a text document, a spreadsheet program can be used to create a spreadsheet, and a graphics program can be used to create a graphical presentation. To assist the user in creating and editing documents, various functions or tools have been integrated into the application programs. For example, a word processing program typically includes a spell checker, a grammar checker and a thesaurus. Originally, many of the functions ran in the foreground. Now, many of the tools run in the background.
Typically, some level of user interaction is needed to correct errors, such as spelling errors. For example, a spell checker presents a user with several choices of correctly spelled words if the spell checker detects a misspelled word, but cannot identify a single correctly spelled word to replace the misspelled word. In this situation, the user must indicate the correctly spelled word using a dialog box or menu. It would be more convenient if the user could determine the correct spelling of a word without having to use a dialog box or a menu. Thus, there is a need for integrating a dictionary into an application program to assist a user in looking up the definition or spelling of a word.
When a user creates a document, the user may include information in the document from an external source. For example, if a user is creating a letter, the user can include the recipient's address by copying the address from an electronic address book. Similarly, if the user wants to include a quote from a news article, the user can access a copy of the news article on the Internet and then copy the quote into the document. In most instances, the user must use a separate program, such as an electronic mail program or a browser program, to obtain the information. By requiring the user to use a separate program, the flow of the user's work is interrupted. Thus, there is a need for providing information to a user that does not require the user to access another program to obtain the information. In addition, the information should be able to be easily integrated into the document so that the user's writing process is not interrupted.
There are times when information that has been included in a document needs to be updated. For example, if the document is a letter that includes an address for the recipient, then the address needs to be updated if the recipient moves. Typically, this update is performed manually, if at all. Often times, the user forgets that the recipient has moved. Thus, there is a need for recognizing that information in a document has changed and for automatically updating the information.
In addition, some information is specific to the user. For example, if directions are provided to a location, the directions are dependent upon the starting location of the user. To provide directions for a particular user, the starting location of the user must be provided or a number of alternative directions must be provided so that the user can select the appropriate directions. If the user needs directions to several locations, then the user typically must provide the user's starting location for each set of directions. Thus, there is a need for considering individualized information in obtaining information that does not require the user to repeatedly provide the individualized information.